Unref the buffer when freeing the RequestData. (#323577)
authorMatthias Clasen <mclasen@redhat.com>
Fri, 9 Dec 2005 16:05:55 +0000 (16:05 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 9 Dec 2005 16:05:55 +0000 (16:05 +0000)
2005-12-09  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
        when freeing the RequestData.  (#323577)

ChangeLog
ChangeLog.pre-2-10
gtk/gtktextbuffer.c

index a5fca0d8c399dd0e31a37f4dab6b40becd310f33..8af06d72a3fa0b4a6f4100c5cd8cd16fb2775bfa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-09  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
+       when freeing the RequestData.  (#323577)
+
 2005-12-07  Matthias Clasen  <mclasen@redhat.com>
 
        * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't
index a5fca0d8c399dd0e31a37f4dab6b40becd310f33..8af06d72a3fa0b4a6f4100c5cd8cd16fb2775bfa 100644 (file)
@@ -1,3 +1,8 @@
+2005-12-09  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtktextbuffer.c (paste_from_buffer): Unref the buffer
+       when freeing the RequestData.  (#323577)
+
 2005-12-07  Matthias Clasen  <mclasen@redhat.com>
 
        * demos/gtk-demo/iconview_edit.c (set_cell_color): Don't
index 6dd858d4f344b35611ed05638f3697aaa6977f3c..e797aeace3e2aa8563885543e07062beeaaaace1 100644 (file)
@@ -2993,6 +2993,13 @@ post_paste_cleanup (ClipboardRequest *request_data)
     }
 }
 
+static void
+free_clipboard_request (ClipBoardRequest *request_data)
+{
+  g_object_unref (request_data->buffer);
+  g_free (request_data);
+}
+
 /* Called when we request a paste and receive the text data
  */
 static void
@@ -3025,8 +3032,7 @@ clipboard_text_received (GtkClipboard *clipboard,
        gtk_text_buffer_end_user_action (buffer);
     }
 
-  g_object_unref (buffer);
-  g_free (request_data);
+  free_clipboard_request (request_data);
 }
 
 static GtkTextBuffer*
@@ -3128,7 +3134,8 @@ paste_from_buffer (ClipboardRequest    *request_data,
     gtk_text_buffer_end_user_action (buffer);
 
   g_object_unref (src_buffer);
-  g_free (request_data);
+
+  free_clipboard_request (request_data);
 }
 
 static void
@@ -3349,8 +3356,7 @@ gtk_text_buffer_paste_clipboard (GtkTextBuffer *buffer,
                                  "gtk_paste_point_override",
                                  override_location, FALSE);
 
-  data->buffer = buffer;
-  g_object_ref (buffer);
+  data->buffer = g_object_ref (buffer);
   data->interactive = TRUE;
   data->default_editable = default_editable;